package com.qf.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qf.dao.StudentDao;
import com.qf.entity.Student;
import com.qf.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Random;

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentDao studentDao;

    @Override
    public String pickname() {
        //1. 查询出所有未被点中的学生
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        wrapper.eq("status",0);
        List<Student> students = studentDao.selectList(wrapper);
        // 需要判断一下，是否还有没有点中的学生
        // 如果没有了，即students的size为0
        if (students.size()==0){
            return "都点完了";
        }
        //2. 产生一个随机数
        Random random = new Random();
        int index = random.nextInt(students.size());
        //3. 根据随机数获取一个学生
        Student student = students.get(index);
        System.out.println("中将的学生为:"+student);
        //4. 修改已经点中的学生的状态
        student.setStatus(1);
        studentDao.updateById(student);
        return student.getName();
    }

    @Override
    public boolean reset() {

        //1. 判断是否还有没点过的同学，如果有，返回false不让重置
        // 查询表中是否还有status=0的数据
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        wrapper.eq("status",0);
        Long count = studentDao.selectCount(wrapper);
        if (count>0){
            System.out.println("还有未点中的学生，不让重置");
            return false;
        }

        //2. 把数据库表 student中的所有的数据的status改成0
        Student student = new Student();
        student.setStatus(0);
        studentDao.update(student,null);

        return true;
    }
}
